package parser.prestige.meldunek.xml;

import parser.prestige.AbstractNode;
import parser.prestige.IXmlElement;

import javax.xml.stream.XMLEventFactory;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;

/**
 * Created with IntelliJ IDEA.
 * User: marcin.kaluza
 * Date: 02.12.13
 * Time: 09:35
 * To change this template use File | Settings | File Templates.
 */
public class Zasob extends AbstractNode implements IXmlElement {
    private String kodRodzajZasobu;
    private String rodzajZasobu;
    private String kodZasobu;
    private String zasob;
    private String uwagi;

    public Zasob(String kodRodzajZasobu, String rodzajZasobu, String kodZasobu, String zasob, String uwagi) {
        this.kodRodzajZasobu = kodRodzajZasobu;
        this.rodzajZasobu = rodzajZasobu;
        this.kodZasobu = kodZasobu;
        this.zasob = zasob;
        this.uwagi = uwagi;
    }

    public Zasob() {
        this.kodRodzajZasobu = "";
        this.rodzajZasobu = "";
        this.kodZasobu = "";
        this.zasob = "";
        this.uwagi = "";
    }

    public String getKodRodzajZasobu() {
        return kodRodzajZasobu;
    }

    public void setKodRodzajZasobu(String kodRodzajZasobu) {
        this.kodRodzajZasobu = kodRodzajZasobu;
    }

    public String getRodzajZasobu() {
        return rodzajZasobu;
    }

    public void setRodzajZasobu(String rodzajZasobu) {
        this.rodzajZasobu = rodzajZasobu;
    }

    public String getKodZasobu() {
        return kodZasobu;
    }

    public void setKodZasobu(String kodZasobu) {
        this.kodZasobu = kodZasobu;
    }

    public String getZasob() {
        return zasob;
    }

    public void setZasob(String zasob) {
        this.zasob = zasob;
    }

    public String getUwagi() {
        return uwagi;
    }

    public void setUwagi(String uwagi) {
        this.uwagi = uwagi;
    }

    @Override
    public void createAsNode(XMLEventWriter eventWriter, int tabValue) throws XMLStreamException{
        XMLEventFactory eventFactory = XMLEventFactory.newInstance();
        XMLEvent endLineEvent = eventFactory.createDTD("\n");
        XMLEvent tabulatorEvent = eventFactory.createDTD("\t");

        //TAG:<Zasob>
        addTabs(eventWriter, tabValue);
        eventWriter.add(eventFactory.createStartElement("", "", "Zasob"));
        eventWriter.add(endLineEvent);

        //skladowe Zasob
        addNode(eventWriter, "KodRodzajZasobu", kodRodzajZasobu, tabValue + 1);
        addNode(eventWriter, "RodzajZasobu", kodRodzajZasobu, tabValue + 1);
        addNode(eventWriter, "KodZasobu", kodZasobu, tabValue + 1);
        addNode(eventWriter, "Zasob", zasob, tabValue + 1);
        addNode(eventWriter, "Uwagi", uwagi, tabValue + 1);
        //koniec skladowych Zasob

        //TAG:</Zasob>
        addTabs(eventWriter, tabValue);
        eventWriter.add(eventFactory.createEndElement("","","Zasob"));
        eventWriter.add(endLineEvent);
    }
}
